package com.benson.generic.bound;

import java.awt.Color;

public class BasicBounds {


}

interface HasColor{
	Color getColor();
}

class Colored<T extends HasColor> implements HasColor{
	T item;
	Colored(T item){this.item = item;}
	
	T getItem(){
		return item;
	}

	@Override
	public Color getColor() {
		return item.getColor();
	}
}

class Dimension{
	public int x,y,z;
}

class ColoredDimension<T extends Dimension & HasColor>{
	T item;
	ColoredDimension(T item){
		this.item = item;
	}
	
	T getItem(){
		return item;
	}
	
	Color getColor(){
		return item.getColor();
	}
	
	int getX(){return item.x;}
	
	int getY(){return item.y;}
	
	int getZ(){return item.z;}
}